//***********************************************************************
//	File:		MechaTrooper.h
//	Author:		
//	Course:		SGP 1405
//	Purpose:	
//***********************************************************************
//***********************************************************************
//	Purposfully left blank for all comments regarding this file 
//	
//	
//	
//***********************************************************************



#pragma once
#include "Enemy.h"
class MechaTrooper :
	public Enemy
{
public:
	//Trilogy
	MechaTrooper(float posX = -1, float posY = -1);
	~MechaTrooper();
	MechaTrooper(const MechaTrooper&) = default; 
	MechaTrooper& operator =(const MechaTrooper&) = default; 

	//Type
	int GetType() const { return ENT_MECHATROOPER; }


	//Interface
	void Update(float dt);
	void Render();
	void HandleCollision(const IEntity* pOther);
	void HandleEvent();
	SGD::Rectangle GetRect() const;
	void ModifyHealth(float hpAmount);
	void ApplyFriction(float dt);

	void Attack(float dt);
	void Move(void);

	//Accessors
	float	GetGunTimer					(void)				{ return m_fGunTimer; }
	float	GetGunCDL					(void)				{ return m_fGunCDL; }
	int		GetGunProjectileType		(void)				{ return m_nGunProjectileType; }
	float	GetMissileTimer				(void)				{ return m_fMissileTimer; }
	float	GetMissileCDL				(void)				{ return m_fMissileCDL; }
	int		GetMissileType				(void)				{ return m_nMissileType; }
	float	GetMeleeDamage				(void)				{ return m_fMeleeDamage; }
	float	GetMeleeTimer				(void)				{ return m_fMeleeTimer; }
	float	GetMeleeCDL					(void)				{ return m_fMeleeCDL; }
			
	//Mutators
	void SetGunTimer					(float gt)			{ m_fGunTimer = gt; }
	void SetGunCDL						(float gCDL)		{ m_fGunCDL = gCDL; }
	void SetGunProjectileType			(int gpt)			{ m_nGunProjectileType = gpt; }
	void SetMissileTimer				(float mt)			{ m_fMissileTimer = mt; }
	void SetMissileCDL					(float mCDL)		{ m_fMissileCDL = mCDL; }
	void SetMissileType					(int mt)			{ m_nMissileType = mt; }
	void SetMeleeDamage					(float med)			{ m_fMeleeDamage = med; }
	void SetMeleeTimer					(float met)			{ m_fMeleeTimer = met; }
	void SetMeleeCDL					(float meCDL)		{ m_fMeleeCDL = meCDL; }

private:
	float m_fGunTimer				 = 0.0f; 
	float m_fGunCDL					 = 0.0f;
	int   m_nGunProjectileType		 = -1;
	float m_fMissileTimer			 = 0.0f; 
	float m_fMissileCDL				 = 0.0f;
	int   m_nMissileType			 = -1;
	float m_fMeleeDamage			 = 0.0f; 
	float m_fMeleeTimer				 = 0.0f; 
	float m_fMeleeCDL				 = 0.0f; 
	
};

